Patch codegen issues enough to make tests pass in experimental analysis #14660
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Merging this should let us finally get rid of the hack that disables the codegen in syntax tests. Note that the codegen won't actually run until we remove the hack commit from
newAnalysis
branch.The PR patches two issues that prevent all current test cases from pass through codegen successfully:
builtin_type_definition.sol
: Calls via function pointers seem unimplemented. I added a propersolUnimplementedAssert()
against that.import_and_call_stdlib_function.sol
: Codegen unconditionally assigns function result to a variable even if the function does not return anything (which is invalid Yul). Added anif
to skip that for functions without return parameters.These are not proper fixes, but should be good enough until we address the issues properly. Especially the second one should be addressed by #14620.